//全局混入，导航拦截
export default {
    methods: {
        //----------权限拦截校验的方法
        //url：跳转的地址；needLogin：是否需要登录；isSwitch：是否为tabBar页面；
        goUrl(url, needLogin = false, isSwitch = false) {
            //如果是需要登录的页面 needLogin = true
            if (needLogin) {
                //从本地获取token，看能不能获取到
                const token = uni.getStorageSync('token')
                //没有获取到token，直接提示用户登录
                if (!token) {
                    return uni.showToast({
                        title: '请登录',
                        icon: "none"
                    })
                }
            }
            //走到这里，说明用户登录了，就可以实现跳转，这里判断是不是tabbar页面
            if (isSwitch) {
                uni.switchTab({
                    // url: url
                    url
                })
            } else {
                uni.navigateTo({
                    url
                })
            }
        },

        //-----------微信支付的方法
        async weixinPay(orderId) {
            // 微信支付的前提： 小程序ID主体为企业、且开通认证、且开通微信商户号功能
            // 1. 提交订单的ID给后端，后端返回支付所需要的加密参数
            let {
                pay_data
            } = await uni.$http.get('/pay/preWeixinPay', {
                params: {
                    orderId
                }
            })
            // 2. 调用支付API， uni.requestPayment()
            uni.requestPayment({
                provider: 'wxpay',
                timeStamp: pay_data.timeStamp,
                nonceStr: pay_data.nonceStr,
                package: pay_data.package,
                signType: pay_data.signType,
                paySign: pay_data.paySign,
                success: res => {
                    // 3. 【有时候】再次发生请求给后端确认订单是否支付成，后端返回支付成功
                    // 支付成功，跳转支付成功界面
                    uni.redirectTo({
                        url: '/pkgOrder/payOnlineResult/payOnlineResult?status=1&order_id=' +
                            orderId
                    })
                },
                fail: () => {
                    // 支付失败，跳转支付失败结果
                    uni.redirectTo({
                        url: '/pkgOrder/payOnlineResult/payOnlineResult?status=0&order_id=' +
                            orderId
                    })
                }
            })
        }
    }
}
